Fix Ozi route reader to not treat header as routepoints.
authorrobertlipe <robertlipe@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 9 Jun 2013 23:17:34 +0000 (23:17 +0000)
committerrobertlipe <robertlipe@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sun, 9 Jun 2013 23:17:34 +0000 (23:17 +0000)
gpsbabel/ozi.cc
gpsbabel/reference/route/ozi.rte [new file with mode: 0644]
gpsbabel/reference/route/ozi~gpx.gpx [new file with mode: 0644]
gpsbabel/testo.d/classic-1.test
gpsbabel/testo.d/ozi.test [new file with mode: 0644]

index e433f03b64c2f4792928b97602332b4acdfcc706..dd2304be6e0d7c2d357efa47feaf97ce837b0199 100644 (file)
@@ -801,14 +801,17 @@ data_read(void)
       s = csv_lineparse(s, ",", "", linecount);
 
       i = 0;
+      bool header = false;
       while (s) {
         switch (ozi_objective) {
         case trkdata:
+          wpt_tmp = waypt_new();
           ozi_parse_track(i, s, wpt_tmp, trk_name);
           break;
         case rtedata:
           if (buff[0] == 'R') {
             ozi_parse_routeheader(i, s, wpt_tmp);
+            header = true;
           } else {
             ozi_parse_routepoint(i, s, wpt_tmp);
           }
@@ -829,16 +832,18 @@ data_read(void)
       switch (ozi_objective) {
       case trkdata:
         if (linecount > 6) {/* skipping over file header */
-          ozi_convert_datum(wpt_tmp);
-          track_add_wpt(trk_head, wpt_tmp);
+            ozi_convert_datum(wpt_tmp);
+            track_add_wpt(trk_head, wpt_tmp);
         } else {
           waypt_free(wpt_tmp);
         }
         break;
       case rtedata:
-        if (linecount > 5) {/* skipping over file header */
+        if (linecount > 5 && wpt_tmp) {/* skipping over file header */
           ozi_convert_datum(wpt_tmp);
+          if (!header) {
           route_add_wpt(rte_head, wpt_tmp);
+          }
         } else {
           waypt_free(wpt_tmp);
         }
diff --git a/gpsbabel/reference/route/ozi.rte b/gpsbabel/reference/route/ozi.rte
new file mode 100644 (file)
index 0000000..bbd02e2
--- /dev/null
@@ -0,0 +1,13 @@
+OziExplorer Route File Version 1.0\r
+WGS 84\r
+Reserved 1\r
+Reserved 2\r
+\r
+\r
+\r
+R,0,1 COSTANERO JA,,255\r
+W,0,1,268,MPCHIC, -34.445850, -58.523720,40507.8513889,53, 0, 3, 0, 65535,MARINA PUNTA CHICA, 0, 0\r
+W,0,2,205,JA12, -34.447380, -58.507270,41344.8282060, 0, 0, 3, 0, 65535,, 0, 0\r
+R,1,1 PCHI COLONIA,,16711680\r
+W,1,1,121,COLONI, -34.467500, -57.854170,0.0000000,35, 0, 3, 0, 65535,07-OCT-00 18:22, 0, 0\r
+W,1,2,118,COLBO3W , -34.477470, -57.861670,41154.0041088, 0, 0, 3, 0, 65535,, 0, 0\r
diff --git a/gpsbabel/reference/route/ozi~gpx.gpx b/gpsbabel/reference/route/ozi~gpx.gpx
new file mode 100644 (file)
index 0000000..bec3c65
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gpx version="1.0" creator="GPSBabel - http://www.gpsbabel.org" xmlns="http://www.topografix.com/GPX/1/0">
+  <time>1970-01-01T00:00:00Z</time>
+  <bounds minlat="-34.477470000" minlon="-58.523720000" maxlat="-34.445850000" maxlon="-57.854170000"/>
+  <rte>
+    <name>1 COSTANERO JA</name>
+    <rtept lat="-34.445850000" lon="-58.523720000">
+      <time>2010-11-25T20:26:00Z</time>
+      <name>MPCHIC</name>
+      <cmt>MARINA PUNTA CHICA</cmt>
+      <desc>MARINA PUNTA CHICA</desc>
+    </rtept>
+    <rtept lat="-34.447380000" lon="-58.507270000">
+      <time>2013-03-11T19:52:37Z</time>
+      <name>JA12</name>
+    </rtept>
+  </rte>
+  <rte>
+    <name>1 PCHI COLONIA</name>
+    <number>1</number>
+    <rtept lat="-34.467500000" lon="-57.854170000">
+      <time>2036-02-05T06:28:16Z</time>
+      <name>COLONI</name>
+      <cmt>07-OCT-00 18:22</cmt>
+      <desc>07-OCT-00 18:22</desc>
+    </rtept>
+    <rtept lat="-34.477470000" lon="-57.861670000">
+      <time>2012-09-02T00:05:55Z</time>
+      <name>COLBO3W </name>
+    </rtept>
+  </rte>
+</gpx>
index 560efb0c767653333f28a86bfd307966d3879ce6..db446cc4e7258d37ba108e58eec72690e8d2ef9a 100644 (file)
@@ -97,13 +97,6 @@ gpsbabel -i tpg -f ${TMPDIR}/geo.tpg -o mxf -F ${TMPDIR}/tpg.mxf
 gpsbabel -i tpg -f ${REFERENCE}/tpg.tpg -o mxf -F ${TMPDIR}/topo.mxf
 compare ${TMPDIR}/tpg.mxf ${TMPDIR}/topo.mxf
 
-
-# OZI (OziExplorer 1.1) file format
-rm -f ${TMPDIR}/oz.wpt ${TMPDIR}/ozi.wpt
-gpsbabel -i ozi -f ${REFERENCE}/ozi.wpt -o ozi -F ${TMPDIR}/oz.wpt
-gpsbabel -i ozi -f ${TMPDIR}/oz.wpt -o ozi -F ${TMPDIR}/ozi.wpt
-compare ${TMPDIR}/ozi.wpt ${REFERENCE}
-
 # Holux support is a little funky to test.  Becuase it loses precision,
 # if we convert it to another format, we lose accuracy (rounding) in the
 # coords, so converting it so something else and comparing it never works.
@@ -112,8 +105,6 @@ compare ${TMPDIR}/ozi.wpt ${REFERENCE}
 gpsbabel -i holux -f ${REFERENCE}/paris.wpo -o holux -F ${TMPDIR}/paris.wpo
 # compare ${REFERENCE}/paris.wpo ${TMPDIR}/paris.wpo
 
-
-
 # GPSPilot Tracker for PalmOS
 # This test is eerily similar to the NAV Companion test.  In fact, the 
 # converted reference file (magnavr.gpu) is identical.
diff --git a/gpsbabel/testo.d/ozi.test b/gpsbabel/testo.d/ozi.test
new file mode 100644 (file)
index 0000000..b7774ec
--- /dev/null
@@ -0,0 +1,10 @@
+
+# OZI (OziExplorer 1.1) file format
+rm -f ${TMPDIR}/oz.wpt ${TMPDIR}/ozi.wpt
+gpsbabel -i ozi -f ${REFERENCE}/ozi.wpt -o ozi -F ${TMPDIR}/oz.wpt
+gpsbabel -i ozi -f ${TMPDIR}/oz.wpt -o ozi -F ${TMPDIR}/ozi.wpt
+compare ${TMPDIR}/ozi.wpt ${REFERENCE}
+
+# Test Ozi routes.
+gpsbabel -i ozi -f ${REFERENCE}/route/ozi.rte -o gpx -F ${TMPDIR}/ozi~gpx.gpx
+compare ${TMPDIR}/ozi~gpx.gpx ${REFERENCE}/route/